Method and apparatus for screen object manipulation

ABSTRACT

The present invention comprises a method and apparatus for manipulating screen objects utilizing multiband regions of influence. Positioning a reference point of an object within a particular band invokes a particular functionality or operation related to that band. In one embodiment, three types of functionality are provided. Moving a reference datum (for example, a line representing an edge or a user defined reference point) of an object A into a first band of an object B places object A under the influence of object B&#39;s gravity, causing object A to be pulled into precise alignment with object B. Moving the reference point of object A from the first band into a second band turns off object B&#39;s gravity, allowing object A to be freely moved to any arbitrary position near the object B. Moving the reference point of the object A to a position outside all bands causes object B&#39;s gravity function to be turned back on. In other embodiments, the bands of the invention provide other kinds of functionalities or operations. For example, one embodiment comprises bands that provide different types of precise positioning. In one embodiment, multiple bands are provided, each one causing objects to be positioned so as to be spaced apart by one of several precise, predetermined distances.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to the manipulation of objectsdisplayed on a display screen, and more particularly to a method andapparatus for positioning objects using direct manipulation.

[0003] 2. Background Art

[0004]FIG. 1 shows an example of two objects, object A 100 and object B105, displayed on a display device such as a computer display screen.The objects may, for example, be objects created with a graphics editingprogram. Objects such as object A 100 and object B 105 that aredisplayed on a display screen may be referred to as “screen objects.”The screen objects shown in FIG. 1 are simple rectangles. However,screen objects can have any size and shape. Further, a screen object mayconsist of a group of different objects. For example, a screen objectmay comprise a bit-mapped image combined with a vector-based drawingobject. A screen object may also represent other objects or data, suchas, for example, a sound clip or video data.

[0005] A user often desires to manipulate screen objects such that theyare precisely located or precisely dimensioned with respect to otherobjects on the screen. For example, a user may desire to position anobject such that one or more of its edges coincide with one or moreedges of another object, as shown in FIG. 2, or such that one or more ofits edges are positioned close to but spaced apart from another object,as shown in FIG. 3. A user may also wish to resize an object such thatthe object has the same height and/or width as another object, as shownin FIG. 4.

[0006] A number of approaches to the precision location and precisionsizing of screen objects have been developed in the prior art.

[0007] One approach, used in drawing programs such as MacDraw™ andClaris Works™, is to provide precision-location and precision-sizingcommands. To use these commands, a user must first select the objects inquestion, for example by positioning a cursor over each object andclicking a mouse button. Next, the user must invoke the desired command,for example by hitting an appropriate hot kev or key combination on akeyboard or by selecting the command using pull-down menus. Finally, theuser must enter information regarding the manner in which the user wantsto position or resize the object into a dialog box that opens after thecommand is activated. FIG. 5 shows an example dialog box for the “align”menu command from MacDraw™.

[0008] Although using precision location and precision sizing commandsallows the user to position or size objects, the multiple steps requiredto use these commands are inconvenient.

[0009] A second approach uses a technique sometimes referred to as“gravity.” In this approach an object, around its edges, is providedwith a “region of influence” that exerts a pull on other objects thatcome into the region. FIGS. 6-9 illustrate the operation of the priorart gravity technique. In FIG. 6, a dotted rectangle 600 indicates theregion of influence for the left edge of object B 105. FIG. 6 also showsa mouse cursor 605 positioned over object A 100. A user may move objectA 100 by selecting and “dragging” object A 100 with a mouse.

[0010] In the gravity approach, when a first object (such as object A100) is dragged so that one of its edges enters the region of influenceof an edge of a second object (such as object B 105), the first objectis automatically “snapped” to the second object such that the edges ofthe two objects meet. FIG. 7 shows object A 100 after it has been movedhorizontally to the right such that its right edge enters region ofinfluence 600 of object B 105. Once the right edge of object A 100enters region of influence 600, object A 100 is snapped to the rightsuch that its right edge is aligned with the left edge of object B 105,as shown in FIG. 8. In this prior art example, if mouse cursor 605 isdragged far enough further to the right, object A 100 once again becomes“unstuck” from object B 105, as shown in FIG. 9.

[0011] Although the gravity technique of the prior art is useful when auser wants to align objects such that their edges coincide, it preventsthe user from arbitrarily positioning objects close to one another. Assoon as an edge of a first object enters a second object's region ofinfluence, the first object is snapped into alignment with the secondobject. Prior art gravity systems thus provide for easy alignment, butat the cost of preventing arbitrary positioning of objects close to oneanother.

SUMMARY OF THE INVENTION

[0012] The present invention comprises a method and apparatus formanipulating screen objects utilizing multiband regions of influence.Positioning a reference datum of an object within a particular bandinvokes a particular functionality or operation related to that band andto that datum.

[0013] In one embodiment, three types of functionality are provided.Moving a reference point or datum (for example, a line representing anedge or a user-defined reference point) of an object A into a first bandof an object B places object A under the influence of object B'sgravity, causing object A to be pulled into precise alignment withobject B. Moving the reference point of object A from the first bandinto a second band turns off object B's gravity, allowing object A to befreely moved to any arbitrary position near the object B. Moving thereference point of the object A to a position outside all bands causesobject B's gravity function to be turned back on. By providing multiplebands of functionality, this embodiment allows a user to convenientlyselect among precise positioning (or sizing) provided by gravity andarbitrary positioning (or sizing) allowed by an absence of gravity,simply by dragging an object's reference point into an appropriate band.No menu commands are required.

[0014] In other embodiments, the bands of the invention provide otherkinds of functionalities or operations. For example, one embodimentcomprises bands that provide different types of precise positioning. Inone embodiment, multiple bands are provided, each one causing objects tobe positioned so as to be spaced apart by one of several precise,predetermined distances.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015]FIG. 1 shows a first arrangement of two example screen objects.

[0016]FIG. 2 shows a second arrangement of the screen objects of FIG. 1.

[0017]FIG. 3 shows a third arrangement of the screen objects of FIG. 1.

[0018]FIG. 4 shows a fourth arrangement of the screen objects of FIG. 1.

[0019]FIG. 5 shows a dialog box of an alignment command of the priorart.

[0020]FIG. 6 shows an example of a region of influence of the prior art.

[0021]FIG. 7 shows the operation of the region of influence of FIG. 6.

[0022]FIG. 8 shows the operation of the region of influence of FIG. 6.

[0023]FIG. 9 shows the operation of the region of influence of FIG. 6.

[0024]FIG. 10 shows an embodiment of a multiband region of influence ofthe invention.

[0025]FIG. 11 shows an example of a reference datum for an object beingmoved in one embodiment of the invention.

[0026]FIG. 12 shows the operation of the multiband region of influenceof FIG. 10.

[0027]FIG. 13 shows the operation of the multiband region of influenceof FIG. 10.

[0028]FIG. 14 shows the operation of the multiband region of influenceof FIG. 10.

[0029]FIG. 15 shows a state transition model for one embodiment of theinvention.

[0030]FIG. 16 shows an embodiment of a multiband region of influence ofthe invention.

[0031]FIG. 17 shows an embodiment of a multiband region of influence ofthe invention.

[0032]FIG. 18 shows an embodiment of a multiband region of influence ofthe invention.

[0033]FIG. 19 shows an embodiment of a multiband region of influence ofthe invention.

[0034]FIG. 20 shows how datum lines for an object being moved aredetermined in one embodiment of the invention.

[0035]FIG. 21 shows how datum lines for an object being moved aredetermined in one embodiment of the invention.

[0036]FIG. 22 shows how datum lines for an object being moved aredetermined in one embodiment of the invention.

[0037]FIG. 23 shows the operation of one embodiment of a multibandregion of influence of the invention.

[0038]FIG. 24 shows the operation of one embodiment of a multibandregion of influence of the invention.

[0039]FIG. 25 shows the operation of one embodiment of a multibandregion of influence of the invention.

[0040]FIG. 26 shows the operation of one embodiment of a multibandregion of influence of the invention.

[0041]FIG. 27 is an example of one embodiment of a computer system thatcan be used to implement the invention.

[0042]FIG. 28 is a flow chart showing the operation of one embodiment ofthe invention.

[0043]FIG. 29 shows an example of a datum line used with an embodimentof a multiband region of influence of the invention when an object isbeing resized.

[0044]FIG. 30 shows an example of the user interface of a sound editingprogram that uses an embodiment of the invention.

[0045]FIG. 31 shows an example of how the reference datum and regions ofinfluence of the invention may be used with the embodiment of FIG. 30.

[0046]FIG. 32 shows an example of non-rectilinear objects used with anembodiment of the invention.

[0047]FIG. 33 illustrates the operation of the embodiment of FIG. 32.

DETAILED DESCRIPTION OF THE INVENTION

[0048] A method and apparatus for manipulation of screen objects isdescribed. In the following description, numerous specific details areset forth in order to provide a more thorough description of theinvention. It will be apparent, however, to one skilled in the art, thatthe invention may be practiced without these specific details. In otherinstances, well-known features have not been described in detail so asnot to obscure the invention.

[0049]FIG. 10 shows an example embodiment of a multiband region ofinfluence of the invention. In FIG. 10, a multiband region of influence1001 comprising bands 1005, 1010 and 1015 is shown extending outwardsadjacent to left edge 1045 of a first screen object B 1000. Dotted linesare used to show multiband region of influence 1001 in FIG. 10 toindicate that multiband region of influence 1001 is not normallydisplayed to a user. FIG. 10 also shows a second screen object A 1030located to the left of object B 1000, and a horizontal coordinate axis1020. Coordinate axis 1020 is provided to indicate relative horizontalpositions. For example, the right edge 1040 of object A 1030 is locatedat coordinate “eA” on axis 1020, while the left edge 1045 of object B1000 is located at coordinate “eB.” For the example of FIG. 10, object A1030 is initially constrained to move horizontally only. However, nosuch constraints are necessary to practice the invention.

[0050] In the example of FIG. 10, multiband region of influence isassociated with an edge, namely left edge 1045, of object B 1000.However, in other embodiments, the multiband region of influence of theinvention may be associated with other reference points of a screenobject, including user defined reference points.

[0051] In the example of FIG. 10, multiband region of influence 1001comprises three bands 1005, 1010 and 1015, respectively. As shown inFIG. 10, band 1015 extends outwards a distance ks from left edge 1045 ofobject B 1000. The right edge of band 1015 is thus located at coordinate“eB” on coordinate axis 1020, while the left edge of band 1015 islocated at coordinate “eB−ks.” Band 1010 extends from the left edge ofband 1015 at coordinate “eB−ks” to coordinate “eB−ku.” Band 1005 extendsfrom the left edge of band 1010 at coordinate “eb−ku” to coordinate“eB−kr.”

[0052] In the example of FIG. 10, object A 1030 is to be moved adjacentto object B 1000, for example by “drag and dropping” with a mouse. Todrag and drop object A, a mouse is used to position a cursor 1050 overobject A 1030. A mouse button is then depressed, locking the cursor ontoobject A 1030 at the spot at which the mouse button was depressed. Thecursor is then moved to a new location, “dragging” object A with it. Atthe new location, the mouse button is released, thereby “dropping”object A 1030 at the new location.

[0053] The process of dragging and dropping an object may be displayedto a user in a number of ways, depending on the embodiment of the userinterface being used. In certain embodiments, the object is shown tomove with the cursor in real time. In other embodiments, the objectremains in place, and an outline representing the object moves with thecursor to indicate the object's new location. For the process of theinvention, any representation of drag-and-dropping may be used.

[0054] In one embodiment, a reference datum representing the position ofone or more edges of an object being moved with respect to a cursorlocation is used to determine whether the functionality associated witha multiband region of influence is to be invoked. In other embodiments,other and/or additional reference datums may be used. In one embodiment,the user may define reference datums for a screen object. Differentfunctionalities may be associated with different datums, or withdifferent ways of selecting a datum. For example, selecting a datum byclicking a left mouse button may invoke a different functionality, whenthe datum is moved inside a region of influence, than selecting thedatum by clicking a right mouse button. In one embodiment, for an objecthaving multiple reference datums, the datum closest to the cursorposition when the mouse button is clicked is deemed to be the activedatum whose position relative to a region of influence invokes thefunctionality associated with the region.

[0055] In FIG. 10, at the time the mouse button is depressed, cursor1050 is located on object A 1030 at coordinate “m0” on horizontalcoordinate axis 1020. Since the right edge 1040 of object A 1030 islocated at coordinate “eA,” the horizontal distance of right edge 1040from cursor 1050 at this time is Δa=eA−m0. Right edge 1040 of object A1030 is thus located a distance Δa to the right of cursor 1050.

[0056]FIG. 11 shows mouse cursor 1050 after it has moved horizontally tothe right from its position at coordinate “m0” in FIG. 10 to coordinate“m” on coordinate axis 1020. Reference datum 1100 represents a referencedatum for right edge 1040 of object A 1030. Since right edge 1040 ofobject A 1030 was located a distance Δa to the right of cursor 1050 whenthe mouse button was depressed, reference datum line 1100 is defined tobe located at horizontal coordinate “m+Δa” when the mouse cursor ispositioned at horizontal coordinate “m.”

[0057] As mouse cursor 1050 is moved, the value of its horizontalcoordinate “m” is monitored. Using this value, the coordinate “m+Δa” forreference datum line 1100 is calculated. The value of coordinate “m+Δa”is compared to the coordinates of the edges of bands 1005, 1010 and 1015of region of influence 1001 to determine whether any functionalityrelated to region of influence 1001 is to be applied. FIGS. 12, 13 and14 illustrate how reference datum line 1100 falls successively intobands 1005, 1010, and 1015 of multiband region of influence 1001 ascursor 1050 is moved to the right. As shown in FIG. 12, reference datumline 1100 falls into band 1005 when (eB−kr)<(m+Δa)<(eB−ku). As shown inFIG. 13, reference datum line 1100 falls into band 1010 when(eB−ku)<(m+Δa)<(eB−ks). And as shown in FIG. 14, reference datum line1100 falls into band 1015 when (eB−ks)<(m+Δa)<eB.

[0058] The bands of the region of influence of the invention can have avariety of configurations. Bands may be contiguous as in the embodimentof FIG. 10. Alternatively, they may overlap, be separated, or bearranged in some other manner. Bands may be associated with one or moreexternal boundaries of an object, and/or with one or more other externalor internal points or features of an object. For example, in oneembodiment that allows a user to establish multiple user-definedreference datums for an object, bands of influence may be associatedwith each of the user-defined reference datums.

[0059] The multiband regions of influence of the invention can be usedto invoke a variety of functionalities, depending on the embodiment. Inone or more embodiments, the particular functionality invoked may dependnot only on the location of a reference datum, but also on the identityand type of the datum, on the type of operation being performed (e.g.moving, resizing, etc.), on the direction of datum line movement, onwhether the right or left mouse button has been clicked or a keyboardkey has been depressed, on the states of objects being manipulated,and/or on other criteria. The functionality invoked by a region ofinfluence of the invention may apply an action to an object or objects,may invoke a change of an object or objects from one state to another,or may apply some other function or action.

[0060] For example, in one embodiment, as shown in FIG. 15, there arethree possible states when one object (“object A”) is being dragged withrespect to another object (“object B”). In state 1 1500, object B's“gravity” is turned on. However, object A is located outside of objectB's region of influence and is therefore freely movable (not stuck toobject B). In state 2 1510, object A, under the influence of object B'sgravity, has become stuck to object B. In state 3, object B's gravityhas been turned off, and object A, accordingly, is not stuck to object Band is freely movable even within object B's region of influence.

[0061] In the state model of FIG. 15, there are three possible statetransitions: (i) from state 1 to state 2 (object A falls within pull ofobject B's gravity and becomes stuck to object B); (ii) from state 2 tostate 3 (object B's gravity is turned off, allowing object A to movefreely in vicinity of object B); and (iii) from state 3 to state 1(object B's gravity is turned back on, object A being outside object B'sregion of influence.

[0062] The state transitions of the embodiment of FIG. 15 may beassociated with the multiband regions of influence of the invention in avariety of ways. The state transitions of the embodiment of FIG. 15 may,for example, be associated with bands 1005, 1010 and 1015 of FIG. 14.

[0063] In one embodiment, the associations between the state transitionsand bands 1005, 1010 and 1015 are as follows:

[0064] 1. When reference datum line 1100 of object A 1030 is outsideobject B 1000's region of influence 1001 (i.e. datum line 1100 is not inany of bands 1005, 1010 or 1015), as shown in FIG. 11, object A is instate 1. In state 1, eA=m+Δa.

[0065] 2. A transition from state 1 to state 2 occurs in band 1015, theband closest to object B 1000. Object A 1030 thus stays in state 1 untilcursor 1050, as shown in FIG. 14, is moved such that datum line 1100enters band 1015 (i.e. (m+Δa)>eB−ks). At this point, object A 1030transitions to state 2, becoming stuck to object B 1000 such that rightedge 1040 of object A 1030 coincides with left edge 1045 of object B1000. In state 2, therefore, eA=eB.

[0066] 3. A transition from state 2 to state 3 occurs in band 1005. Toturn off object B 1000's gravity such that object A 1030 becomes unstuckand near object B 1000, cursor 1050 must be moved such that datum line1100 enters band 1005. Once the transition from state 2 to state 3 hasoccurred, datum line 1100 can be moved back into band 1015 withoutobject A 1030 becoming stuck to object B 1000.

[0067] 4. A transition from state 3 back to state 1 occurs beyond theoutermost band of region of influence 1001. If object A 1030 is in state3 (unstuck, object B 1000's gravity off), and it is desired for object A1030 to be stuck to object B 1000, datum line 1100 must first be movedbeyond the outermost band (i.e. band 1005) of region of influence 1001(to turn object B 1000's gravity back on), and then back inside band1015 (such that object A 1030 becomes stuck to object B 1000 under theinfluence of object B 1000's gravity).

[0068] In this embodiment, no state transitions or other functionalityis associated with band 1010. Accordingly, the same functionality can beprovided by the multiband region of influence 1600 of FIG. 16, whichincludes two bands 1605 and 1610 spaced apart by a distance of ku-ks.

[0069] In the embodiments of FIGS. 10 and 16, objects were constrainedto move horizontally and a multiband region of influence of theinvention was shown to extend outwardly in only one direction from onlyone edge of a screen object. In the more general case, objects may bemoved in any direction, and the multiband region of influence extends toboth sides of each edge of a screen object. FIGS. 17-19 show differentexample configurations of the multiband region of influence of theinvention.

[0070] In the embodiment of FIG. 17, multiband region of influence 1700,like multiband region of influence 1600 of FIG. 16, comprises two bands1705 a and 1710 a extending to the left of left edge 1045 of object B1000. In addition, multiband region of influence 1700 includes two bands1710 b and 1705 b extending to the right of edge 1045. In thisembodiment, bands 1710 b and 1705 b are mirror images of bands 1710 aand 1705 a, respectively, and have the same associated functionalities.

[0071] In the embodiment of FIG. 18, multiband region of influence 1800consists of two bands 1805 and 1810 to the left of left edge 1045 ofobject B 1000 and one band 1815 to the right of edge 1045. In thisembodiment, each of the bands 1805, 1810 and 1815 may have differentassociated functionalities. In one embodiment, for example, using thestate model of FIG. 15, band 1810 invokes a transition from state 1 1500to state 2 1510, while band 1815 invokes a transition from state 2 1510to state 3 1520, and band 1805 invokes a transition from state 3 1520 tostate 1 1500.

[0072]FIG. 19 shows an object 1900 that has multiband regions ofinfluence 1910, 1920, 1930, and 1940 associated with each of its sides1915, 1925, 1935 and 1945, respectively. Each multiband region ofinfluence 1910-1940 includes six bands a, b, c, d, e and f. The bandsinvoke certain specified functionalities on objects whose datum linesenter into one or more of the bands. Objects in the embodiment of FIG.19 are not constrained to move horizontally or vertically, but can movein any direction. In one embodiment, using the state model of FIG. 15,bands c and d invoke a transition from state 1 1500 to state 2 1510,bands a and f invoke a transition from state 2 to state 3, and theregion outside of bands a-f invokes a transition from state 3 to state1. In this embodiment, bands b and e do not invoke any functionality.

[0073]FIGS. 20 and 21 show how datum lines are established for use withmultiband regions of influence in one embodiment of the invention. FIG.20 shows an object 2000 with left edge 2005, bottom edge 2010, rightedge 2015, and top edge 2020. The datum lines are established, forexample, when a mouse cursor is positioned over an object and a mousebutton is pressed and held.

[0074]FIG. 20 shows a mouse cursor 2025 after it has been positionedover object 2000 and its mouse button has been pressed. At the momentthe mouse button is pressed, the distance of cursor 2025 from each ofthe edges 2005, 2010, 2015 and 2020 is determined. As shown in FIG. 20,the distances from cursor position 2025 to each of edges 2005, 2010,2015 and 2020 at the time the mouse button is pressed are Δa, Δb, Δc andΔd, respectively.

[0075] Datum lines are established at locations that correspond to theposition of edges 2005, 2010, 2015 and 2020 relative to cursor position2025 at the time the mouse button is pressed, as shown in FIG. 21. FIG.21 shows cursor 2025 after it has been moved, keeping the mouse buttonpressed, from its original position in FIG. 20. As shown in FIG. 21, thedatum lines for edges 2005, 2010, 2015 and 2020 moved along with cursor2025 as cursor 2025 is dragged to a new position. In FIG. 21, datum line2105 corresponds to edge 2005, datum line 2110 corresponds to edge 2010,datum line 2115 corresponds to edge 2015, and datum line 2120corresponds to edge 2020.

[0076] In the embodiment FIG. 21, the length of each datum line is thesame as the length of the corresponding edge of object 2000. However, inother embodiments, the length of a datum line may be different from thelength of the corresponding object edge. For example, in FIG. 22, datumlines 2105, 2110, 2115 and 2120 extend indefinitely.

[0077] FIGS. 23-26 demonstrate the interaction of the datum lines ofFIG. 21 with the multiband regions of influence of FIG. 19 in oneembodiment of the invention. In the embodiment of FIGS. 23-26, thefunctionality invoked by regions of influence related to vertical edgesof objects is invoked only if all or part of a vertical datum line of anobject being moved falls into the region, while the functionalityinvoked by regions of influence related to horizontal edges of objectsis invoked only if all or part of a horizontal datum line of an objectbeing moved falls into the region.

[0078] For example, in FIG. 23, cursor 2025, originally positioned onobject 2000 as shown in FIG. 20, has been moved, along with the datumlines 2105, 2110, 2115, and 2120 such datum line 2120 (corresponding totop edge 2020 of object 2000) protrudes into band 1930d of multibandregion of influence 1930 (relating to bottom edge 1935 of object 1900),and datum line 2105 (corresponding to left edge 2005 of object 2000)protrudes into band 1910 c of multiband region of influence 1910(relating to left edge 1915 of object 1900).

[0079] In the embodiment of FIG. 23, using the state model of FIG. 15,bands c and d of each region of influence invoke a transition from state1 1500 to state 2 1510, bands a and f invoke a transition from state 21510 to state 3 1520, and the region outside of bands a-f invokes atransition f rom state 3 1520 to state 1 1500. In this embodiment, bandsb and e do not invoke any functionality Accordingly, when cursor 2025 ofFIG. 20 is located as shown in FIG. 23:

[0080] 1. Because datum line 2120 protrudes into band 1930 d, a changein state from state 1 1500 to state 2 1510 is invoked with respect tobottom edge 1935 of object 1900 and top edge 2020 of object 2000. If themouse button is released while cursor 2025 is in this position, the topedge 2020 of object 2000 becomes “stuck” (aligned), in a verticaldirection, to the bottom edge 1935 of object 1900.

[0081] 2. Because datum line 2105 protrudes into band 1910 c, a changein state from state 1 1500 to state 2 1510 is invoked with respect toleft edge 1915 of object 1900 and left edge 2005 of object 2000. If themouse button is released while cursor 2025 is in this position, leftedge 2005 of object 2000 becomes “stuck” (aligned), in a horizontaldirection, to the left edge 1915 of object 1900.

[0082] The resulting placement of object 2000 with respect to object1900 is shown in FIG. 24.

[0083] A user may, however, desire to turn off the gravity associatedwith one or more edges of object 1900 so that one or more edges ofobject 2000 can be placed close to one or more sides of object 1900without being stuck to that side. In the embodiment of FIG. 23, gravitywith respect to an edge of object 1900 is turned off by moving theappropriate datum line from band c or d into band a or f of themultiband region of influence associated with that edge. For example, toturn off the gravity with respect to left edge 1915 of object 1900,cursor 2025 is moved from the location shown in FIG. 23, at which datumline 2105 extends into band 1910 c, to the location shown in FIG. 25, atwhich datum line 2105 extends into band 1910 a, thereby causing thegravity associated with left edge 1915 of object 1900 to be turned off.If cursor 2025 is now moved back to the location shown in FIG. 23, andthe mouse button released, top edge 2020 of object 2000 will still bestuck, in a vertical direction, with bottom edge 1935 of object 1900(because gravity with respect to bottom edge 1935 is still on, and datumline 2120, corresponding to top edge 2020 of object 2000 still extendsinto band 1930 d). However, because gravity associated with left edge1915 of object 1900 has been turned off, left edge 2005 object 2000 willnot become stuck to left edge 1915 of object 1900 even though datum line2105 extends into band 1910 c. Instead, left edge 2005 of object 2000will be located at the same horizontal position as the horizontalposition of datum 2105 in FIG. 23. The resulting position of object 2000with respect to object 1900 is shown in FIG. 26.

[0084] The present invention can be implemented by means of softwareprogramming on any of a variety of ore or more computer systems as arewell known in the art, including, without limitation, computer systemssuch as that shown in FIG. 27. The computer system shown in FIG. 27includes a CPU unit 2700 that includes a central processor, main memory,peripheral interfaces, input-output devices, power supply, andassociated circuitry and devices; a display device 2710 which may be acathode ray tube display, LCD display, gas-plasma display, or any othercomputer display; an input device 2730, which may include a keyboard,mouse, digitizer, or other input device. The computer system may or maynot include non-volatile storage 2720, which may include magnetic,optical, or other mass storage devices, and a printer 2750. The computersystem may also include a network interface 2740, which may consist of amodem, allowing the computer system to communicate with other systemsover a communications network such as the Internet. Any of a variety ofother configurations of computer systems may also be used.

[0085]FIG. 28 is a flow chart showing the operation of one embodiment ofthe invention. As shown in FIG. 28, the activation of a mouse button isawaited at step 2805. When a mouse button is activated, notification ofthe mouse button activation is received at step 2810. At step 2815, adetermination is made as to whether the mouse cursor is positioned overan object (such as, for example, object 2000 of FIG. 20) on a displayscreen. If it is determined that the cursor is not positioned over anobject, processing returns to step 2805.

[0086] If it is determined that the cursor is positioned over an object,the identity and location of the applicable reference datum isdetermined at step 2820. For example, for an object for which no otherreference datums other than its external boundaries have beenestablished, in one embodiment, the applicable reference datum will bethe object's external boundaries. Alternatively, if the object has otherreference daturns other than its external boundaries, one or moreapplicable datums are determined using appropriate criteria. In oneembodiment, for example, the reference datum nearest the cursor positionwhen the mouse button is clicked is selected as the applicable datum. Avariety of other criteria may also be used.

[0087] At step 2825, the initial state of the object at the time themouse button is clicked is determined. In one embodiment, the initialstate is deemed to be state 3 of FIG. 15: namely, the object is notcurrently stuck to any other object, and the gravity associated with anyimmediately adjacent object is off. In another embodiment, the initialstate of the object is the state of the object that resulted from anyimmediately prior manipulation of the object. For example, if the objectwas previously manipulated so as to become stuck to another object(state 2), then the initial state at step 2825 is also state 2. In otherembodiments, other criteria may be used to establish the initial state.

[0088] At step 2830, further mouse operations are monitored. At step2835, a determination is made as to whether the mouse has moved. If not,at step 2840, a determination is made as to whether the mouse button hasbeen released. If the mouse button has been released, the current stateof the object is determined at step 2843, and the object is redrawn atthe appropriate location determined by the position of the cursor andthe current state at step 2845. If the mouse button has not beenreleased, processing returns to step 2830.

[0089] If a determination is made at step 2835 that the mouse has moved,a determination is made whether any applicable reference datum hasentered an applicable band of a multiband region of influence at 2850.Such a determination may be made, for example, by determining whetherthe a reference datum identified at block 2820 falls in an applicableband. In one embodiment, if the applicable datum comprises the verticaland horizontal edges of the external boundary of a rectangular object,an applicable band is a band related to a vertical side of a stationaryobject for the vertical portions of the reference datum for an objectbeing moved, and a band related to a horizontal side of a stationaryobject for the horizontal portions of the datum for the object beingmoved. If it determined that no reference datum has entered anapplicable band, processing returns to step 2830.

[0090] If it is determined at step 2850 that a reference datum hasentered into an applicable band, then the current state for that bandand that datum is determined at block 2855. The current state may, forexample, be maintained in a look-up-table listing objects, datums, andstates. The current state may, for example, be one of the states of FIG.15.

[0091] At step 2860, a determination is made as to whether the event ofthe datum entering the band necessitates a change in state. Whether ornot a change in state is required depends on the current state and theparticular band the datum has entered. For example, in the embodiment ofFIG. 19, if the current state is state 1 1500 of FIG. 15 and a verticaldatum line of the object being moved has entered band 1910 a, 1910 b,1910 e, or 1910 f, for example, no change in state is needed. However,if a vertical datum line of an object in state 1 enters into either ofbands 1910 c or 1910 d, a change in state is invoked from state 1 tostate 2.

[0092] If no change in state is required, processing returns to step2830. If a change in state is required, that change is made and the newstate recorded at step 2865. Processing then returns to step 2830.

[0093]FIG. 29 shows an example of a datum 2910 used with the multibandregion of influence of the invention when an object is being resized, asopposed to being moved. To resize an object, a cursor 2915 is used toselect an edge (or in some embodiments a resizing “handle”) 2925 of theobject 2935 being resized. Only the edge 2925, not the entire object2935, moves when the edge is dragged to a new desired position. Datumline 2910 is located at the mouse cursor position and extends parallelto the edge 2925 that has been selected for resizing. The location ofedge 2925 once the mouse button is released during resizing isdetermined from current state of edge 2925 in relation to a multibandregion of influence and the position of the datum line 2910 at the timethe mouse button is released in the same manner as the location for theedge of an object being moved is determined as described with respect toFIGS. 19-26. However, in the case of resizing, instead of the objectbeing moved to match the new edge position, the object is stretched (orcompressed) to accommodate the new edge position.

[0094]FIG. 30 shows an example of the user interface of a sound editingprogram that uses an embodiment of the invention. FIG. 30 shows adisplay screen 3000 that contains two audio tracks 3001 and 3002. Thehorizontal axis of display screen 3000 represents time. Audio track 3001contains a screen object 3005 that represents a first sound clip. Audiotrack 3002 contains a screen object 3010 that represents a second soundclip. The relative horizontal positions of screen objects 3005 and 3010represent the points in time during which the sound clips represented bythe screen objects play during playback.

[0095] Screen object 3005 includes a name area 3015, a wave area 3025,and a sync point area 3020. Screen object 3010 also includes a name area3045, a wave area 3050, and a sync point area 3040.

[0096] Name area 3015 displays the name of the sound clip represented byscreen object 3005. Wave area 3025 shows a representation of the soundwave represented by screen object 3005. Sync point area 3020 showsuser-created sync points, such as sync point 3030. In one embodiment, auser may create a sync point by clicking in the sync point area of ascreen object at the desired horizontal location of the sync point andactivating an appropriate pull-down menu command.

[0097] In the embodiment of FIG. 30, screen objects 3005 and 3010 may bemoved, using a pointing device such as a mouse, horizontally along audiotracks 3001 and 3002, respectively. Screen objects may also be movedfrom one track to another. In one embodiment, a screen object may bemoved by positioning a mouse cursor in either the name area or the syncarea, and dragging the object to the desired location. A screen objectcan be constrained to remain in a track by, for example, holding down ashift key on a keyboard while dragging.

[0098] When a screen object is being moved in the example of FIG. 30,multiband regions of influence are activated with respect to eachvertical side and each sync point of the other screen objects displayedon the screen, as shown in FIG. 31. In FIG. 31, screen object 3005 isbeing moved. Accordingly, multiband regions of influence 3130, 3120, and3125 are activated with respect to the left and right edges and syncpoint 3035 of screen object 3010, respectively.

[0099] In the embodiments of FIGS. 30 and 31, the applicable referencedatum for the screen object being moved is determined by the location ofthe mouse cursor when the drag operation is begun (i.e. when the mousebutton is clicked). In the embodiment of FIGS. 30 and 31, a screenobject drag operation can be begun by positioning the cursor in eitherthe name area or the sync point area of the screen object being dragged.If the cursor is positioned in the name area of the screen object at thebeginning of a drag operation, the left or right edge of the screenobject that is nearest to the cursor position establishes the referencedatum applicable to that drag operation. If the cursor is positioned inthe sync point area, the nearest sync point establishes the referencedatum.

[0100] For example, in the embodiment of FIG. 31, if, at the beginningof a drag operation, the cursor is located at position 3100 in name area3015 of screen object 3005, the nearest left or right edge of screenobject 3005 is the left edge. Accordingly, reference datum 3105 isestablished at the horizontal location of the left edge of screen object3005. Alternatively, if, at the beginning of a drag operation, thecursor is located at position 3110 in sync point area 3020, the nearestsync point is sync point 3030. Accordingly, reference datum 3115 isestablished at the horizontal location of sync point 3030. Theinteraction of reference datums 3105 or 3115 with multiband regions ofinfluence 3130, 3125, and 3120 allows an edge or sync point of onescreen object to be precisely aligned with an edge or sync point ofanother screen object, or to be positioned close to but not preciselyaligned with an edge or sync point of the other screen object, asdesired by the user, in the same manner as described with respect to theother embodiments of the invention.

[0101]FIGS. 32 and 33 show examples of non-rectilinear objects used inone embodiment of the invention. FIG. 32 shows a stationarynon-rectilinear object 3200 and a moving non-rectilinear object 3220. Inthe example of FIG. 32, object 3200 is an oval and object 3220 is acircle. However, objects 3200 and 3220 can have any arbitrary shape. Inthe example of FIG. 32, stationary object 3200 has an associatedmultiband region of influence 3210. Moving object 3220 has an associatedreference datum 3230, which may, for example, have been designated by auser. Multiband region of influence 3210 comprises bands 3212, 3214 and3216 which may, for example, have the same functionality as bands 1805,1810 and 1815, respectively, of the embodiment of FIG. 18. FIG. 32 showsobject 3220 being moved towards object 3200, for example by beingdragged with a mouse.

[0102] According to the invention, if object 3220 is moved such thatreference datum 3230 enters band 3214 of multiband region of influence3210, object 3200's gravity is turned on, and object 3220 is pulledtowards object 3200 such that reference datum 3230 of object 3220coincides with the outside edge (i.e. the periphery) of stationaryobject 3200. Position “A” in FIG. 33 indicates the resulting relativepositions of objects 3200 and 3220. If, for example, a user now dragsobject 3220 to the left in a generally horizontal direction, object 3220will remain stuck to object 3200 and move along the periphery of object3200 (e.g. from position “A” to position “B”) as long as the conditionsfor object 3220 being “stuck” to object 3200 (e.g. reference datum 3230remains in band 3214 of multiband region of influence 3210) continue tobe met. However, as in the embodiment of FIG. 18, if object 3220 ismoved such that reference datum 3230 enters band 3216, object 3200'sgravity is turned off, and object 3220 becomes unstuck from object 3200.

[0103] Thus, a method and apparatus for manipulating screen objects hasbeen described. Although the invention has been described with respectto certain example embodiments, it will be apparent to those skilled inthe art that the present invention is not limited to these specificembodiments. For example, although the multiband region of influence hasbeen described with respect to two-dimensional, rectangular screenobjects, the multiband region of influence of the invention can be usedwith three dimensional screen objects and with objects of any shape.Further, although the operation of certain embodiments has beendescribed in detail using certain detailed process steps, some of thesteps may be omitted or other similar steps may be substituted withoutdeparting from the scope of the invention. Other embodimentsincorporating the inventive features of the invention will be apparentto those skilled in the art.

1. A method for manipulating objects displayed on a display screencomprising the steps of: providing a first screen object with amultiband region of influence comprising a plurality of bands forinvoking operations related to manipulating screen objects displayed onsaid display screen.
 2. The method of claim 1 further comprising thesteps of: selecting a second screen object, establishing a referencedatum for said second screen object; moving said reference datum suchthat at least a portion of said reference datum protrudes into a firstband of said plurality of bands; invoking a first operationcorresponding to said first band.
 3. The method of claim 2 furthercomprising the steps of: moving said reference datum from a position atwhich said reference datum protrudes into said first band to a positionat which said reference datum protrudes into a second band of saidplurality of bands; invoking a second operation corresponding to saidsecond band.
 4. The method of claim 2 wherein said first operationcomprises locating an edge of said second screen object a predetermineddistance from an edge of said first screen object.
 5. The method ofclaim 4 wherein said predetermined distance is zero.
 6. The method ofclaim 3 wherein said second operation comprises turning off gravity withrespect to an edge of said first object corresponding to said multibandregion of influence.
 7. The method of claim 1 wherein said multibandregion of influence comprises a first band and a second band and whereinsaid first and second bands are non-contiguous.
 8. The method of claim 2further comprising the steps of: moving said reference datum from aposition at which said reference datum protrudes into said first band toa position at which said reference datum protrudes into none of saidplurality of bands; invoking a second operation corresponding to saidmoving of said reference datum to a position at which said referencedatum protrudes into none of said plurality of bands.
 9. The method ofclaim 8 wherein said second operation comprises turning on gravity withrespect to an edge of said first object corresponding to said multibandregion of influence.
 10. The method of claim 2 wherein said first bandis disposed immediately adjacent to said edge of said first screenobject.
 11. The method of claim 3 wherein said second band is disposedapart from said edge of said first screen object.
 12. The method ofclaim 2 wherein said step of establishing said reference datum for saidsecond screen object comprises establishing said reference datum at auser selected location.
 13. A program storage device readable by amachine, tangibly embodying a program of instructions executable by themachine to perform method steps for manipulating objects displayed on adisplay screen, said method comprising the steps of: providing a firstscreen object with a multiband region of influence comprising aplurality of bands for invoking operations related to manipulatingscreen objects displayed on said display screen.
 14. The program storagedevice of claim 13 wherein said method further comprises the steps of:selecting a second screen object; establishing a reference datum forsaid second screen object; moving said reference datum such that atleast a portion of said reference datum protrudes into a first band ofsaid plurality of bands; invoking a first operation corresponding tosaid first band.
 15. The program storage device of claim 14 wherein saidmethod further comprises the steps of: moving said reference datum froma position at which said reference datum protrudes into said first bandto a position at which said reference datum protrudes into a second bandof said plurality of bands; invoking a second operation corresponding tosaid second band.
 16. The program storage device of claim 14 whereinsaid first operation comprises locating an edge of said second screenobject a predetermined distance from an edge of said first screenobject.
 17. The program storage device of claim 16 wherein saidpredetermined distance is zero.
 18. The program storage device of claim15 wherein said second operation comprises turning off gravity withrespect to an edge of said first object corresponding to said multibandregion of influence.
 19. The program storage device of claim 13 whereinsaid multiband region of influence comprises a first band and a secondband and wherein said first and second bands are non-contiguous.
 20. Theprogram storage device of claim 14 wherein said method further comprisesthe steps of: moving said reference datum from a position at which saidreference datum protrudes into said first band to a position at whichsaid reference datum protrudes into none of said plurality of bands;invoking a second operation corresponding to said moving of saidreference datum to a position at which said reference datum protrudesinto none of said plurality of bands.
 21. The program storage device ofclaim 17 wherein said second operation comprises turning on gravity withrespect to an edge of said first object corresponding to said multibandregion of influence.
 22. The program storage device of claim 14 whereinsaid first band is disposed immediately adjacent to said edge of saidfirst screen object.
 23. The program storage device of claim 15 whereinsaid second band is disposed apart from said edge of said first screenobject.
 24. The program storage device of claim 14 wherein said methodstep of establishing said reference datum for said second screen objectcomprises establishing said reference datum at a user selected location.